package br.com.statizo.financeiro.service;

import java.text.DateFormatSymbols;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import br.com.statizo.financeiro.event.PeriodoChangeListener;
import br.com.statizo.financeiro.event.PeriodoEvent;

public class CalendarService{
//
//	private int selectedMonth = Calendar.getInstance().get(Calendar.MONTH);
//	private int year = Calendar.getInstance().get(Calendar.YEAR);
//	
//	private List<PeriodoChangeListener> listeners;
//	
//	@Autowired
//	private LancamentoService lancamentoService;
//	
//	public CalendarService() {
//		setCurrentMonth();
//		setCurrentMonth();
//	}
//	
//	private String[] months = new DateFormatSymbols().getMonths();
//	
//	public void setSelectedMonth(int month) {
//
//		int realMonth = month - 1;
//		if( realMonth == this.selectedMonth)
//			return;
//		this.selectedMonth = realMonth;
//		this.notifyListeners();
//	}
//	
//	public int getYear() {
//		return year;
//	}
//	
//	public int getSelectedMonth() {
//		return selectedMonth;
//	}
//	
//	public int getRealSelectedMonth(){
//		return selectedMonth + 1;
//	}
//	
//	public void setYear(int year) {
//		if(year == this.year)
//			return;
//		this.year = year;
//		this.notifyListeners();		
//	}
//
//	public String[] getMonthNames(){
//		
//		String[] monthNamesData = new String[15];
//
//		monthNamesData[0] = "Ano anterior...";
//		
//		boolean currentYear = year == Calendar.getInstance().get(Calendar.YEAR);
//		
//		for(int i = 0; i<months.length; i++){
//			
//			if(currentYear)
//				monthNamesData[i+1] = months[i];
//			else
//				
//				monthNamesData[i+1] = months[i] + " ( "+year+" )";
//		}
//
//		monthNamesData[monthNamesData.length - 2] = "Próximo ano...";
//		monthNamesData[monthNamesData.length - 1] = "Ano Atual";
//		
//		return monthNamesData;
//		
//	}
//	
//	public String[] getMonthNamesForCombo(){
//		
//		String[] monthNames = new String[months.length + 1];
//		monthNames[0] = "Selecione";
//		
//		for(int i = 1; i<monthNames.length; i++){
//			monthNames[i] = months[i-1]; 
//		}
//		
//		return monthNames;
//	}
//
//	
//	public int getMaxYear(){
//		return lancamentoService.getMaxYear();
//	}
//	
//	public int getMinYear(){
//		return 2013;
//	}
//	
//
//	public String[] getYears(){
//		List<Integer> years = lancamentoService.getYears();
//		String[] strYears = new String[years.size()];
//		
//		for (int i = 0; i < strYears.length; i++) {
//			strYears[i] = String.valueOf(years.get(i));
//		}
//		
//		return strYears;
//		
//	}
//	
//	public void setNextYear(){
//		this.year++;
//		notifyListeners();
//	}
//	
//	public void setPreviousYear(){
//		this.year--;
//		notifyListeners();
//	}
//
//	public void setCurrentYear(){
//		this.year = Calendar.getInstance().get(Calendar.YEAR); 
//		notifyListeners();
//	}
//	
//	public void setCurrentMonth(){
//		this.selectedMonth = Calendar.getInstance().get(Calendar.MONTH);
//		notifyListeners();
//	}
//	
//	
//	public void addPeriodoChangeListener(PeriodoChangeListener listener){
//		if(this.listeners == null)
//			this.listeners = new ArrayList<>();
//			
//		this.listeners.add(listener);
//	}
//	
//	public void setListeners(List<PeriodoChangeListener> listeners) {
//		this.listeners = listeners;
//	}
//	
//
//	protected void notifyListeners(){
//		if(this.listeners == null)
//			return;
//		
//		PeriodoEvent event = new PeriodoEvent();
//		event.month = this.selectedMonth;
//		event.year = this.year;
//		event.realMonth = this.getRealSelectedMonth();
//		
//		for(int i = 0; i<this.listeners.size(); i++){
//			this.listeners.get(i).periodoChanged(event);
//		}
//		
//	}
//	
	
	


}